<?php

require_once('ReservaDAO.php');

class Reserva
{
	public $id; // chave primaria de uma reserva no banco de dados
	public $ano; // objeto referente ao ano
	public $rateio; // objeto referente ao rateio de uma unidade
	public $campus; // objeto referente ao campi
	public $tipoDespesa; // tido de despesa podendo ser 33 ou 44
	public $processo; //numero do processo contendo caracteres . e /
	public $despesa; // descrição da despesa
	public $valor; // numero inteiro com o valor da reserva
	public $pi;   // numero do processo interno
	public $dao; // objeto para acesso ao banco de dados
	public $licitacao; //objeto licitacao
	public $data; // data da reserva
	public $setor; // objeto referente ao setor
	public $naturezaDespesa; // objeto NaturezaDespesa
	public $subElemento; // objeto SubElemento do sub elemento
	public $situacao;
	public $planoInterno;
	
     public function __set( $var, $val )
     {
            $this->$var = $val;
     }

     public function __get( $var )
     {
            return $this->$var;
     }
	
     public function __construct($id=NULL, $ano=NULL, $rateio=NULL, $campus=NULL, $tipoDespesa=NULL, $processo=NULL,
     $despesa=NULL, $valor=NULL, $pi=NULL, $licitacao=NULL, $setor=NULL, $naturezaDespesa=NULL, $subElemento=NULL, $situacao=NULL, $planoInterno=NULL)
     {
     	$this->id  			= $id;
     	$this->ano 			= $ano;
     	$this->rateio 		= $rateio;
     	$this->campus 		= $campus;
     	$this->tipoDespesa 	= $tipoDespesa;
     	$this->processo 	= $processo;
     	$this->despesa 		= $despesa;
     	$this->valor 		= $valor;
     	$this->pi 		= $pi;
     	$this->licitacao        = $licitacao;
     	$this->setor		= $setor;
     	$this->naturezaDespesa  = $naturezaDespesa;
     	$this->subElemento      = $subElemento;
     	$this->situacao         = $situacao;
     	$this->planoInterno     = $planoInterno;
     	$this->dao		= new ReservaDAO();
     }
     
     public function CadastrarReserva()
     {
     	$resultado = $this->dao->CadastrarReserva($this);
     	return $resultado;
     }
     
     public function AlterarReserva()
     {
     	$resultado = $this->dao->AlterarReserva($this);
     	return $resultado;	
     }
     
     public function ExcluirReserva($reservaId)
     {
     	$resultado = $this->dao->ExcluirReserva($reservaId);
     	return $resultado;	
     }
     
     public function CarregarReservasPorCampus($campusId)
     {
     	$resultado = $this->dao->LoadReservas($campusId);
     	return $resultado;
     }

     public function CarregarReservasPorFonte($fonteId)
     {
     	$resultado = $this->dao->LoadReservasPorFonte($fonteId);
     	return $resultado;
     }

     public function CarregarReservasPorAcao($acaoId)
     {
     	$resultado = $this->dao->LoadReservasPorAcao($acaoId);
     	return $resultado;
     }
     
     public function CarregarReservasPorProcesso($processo)
     {
     	$resultado = $this->dao->LoadReservasPorProcesso($processo);
     	return $resultado;
     }
     
     public function CarregarReservasPorSetor($setorId)
     {
     	$resultado = $this->dao->LoadReservasPorSetor($setorId);
     	return $resultado;
     }
     
     public function CarregarReserva($id)
     {
     	$resultado = $this->dao->LoadReserva($id);
     	return $resultado;
     }

     public function CarregarTodos(){
         $resultado = $this->dao->CarregarTodos();
     	return $resultado;
     }

     public function CarregarTotalValorReservaPorRateio( $rateioId ){
        $resultado = $this->dao->CarregarTotalValorReservaPorRateio( $rateioId );
     	return $resultado;
     }

     public function CarregarTotalValorReservaPorRateioMenosEmpenho( $rateioId ){
        $resultado = $this->dao->CarregarTotalValorReservaPorRateioMenosEmpenho( $rateioId );
     	return $resultado;
     }
     
}
?>